analyze: SubscriptExpr.o depSolve.o LoopInfo.o LoopAnalyzer.o analyze.o 
	g++ SubscriptExpr.o depSolve.o LoopInfo.o LoopAnalyzer.o analyze.o -o analyze  -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangAnalysis -lclangIndex -lclangRewrite -lclangAST -lclangLex -lclangBasic `llvm-config --ldflags --libs`

SubscriptExpr.o: SubscriptExpr.cpp SubscriptExpr.h
	g++ -c SubscriptExpr.cpp -g -o SubscriptExpr.o `llvm-config --cxxflags`

depSolve.o: depSolve.cpp depSolve.h SubscriptExpr.h LoopInfo.h DepGraph.h
	g++ -c depSolve.cpp -g -o depSolve.o `llvm-config --cxxflags`

analyze.o: analyze.cpp LoopAnalyzer.h LoopInfo.h SubscriptExpr.h depSolve.h
	g++ -c analyze.cpp -g -o analyze.o `llvm-config --cxxflags` 

LoopInfo.o: LoopInfo.cpp LoopInfo.h SubscriptExpr.h
	g++ -c LoopInfo.cpp -g -o LoopInfo.o `llvm-config --cxxflags` 

LoopAnalyzer.o: LoopAnalyzer.cpp LoopAnalyzer.h LoopInfo.h SubscriptExpr.h
	g++ -c LoopAnalyzer.cpp -g -o LoopAnalyzer.o `llvm-config --cxxflags` 

clean: 
	/bin/rm *.o analyze